package com.jk.vehicle.mini.dao;

import com.jk.vehicle.mini.entity.MileageRecord;
import com.jk.vehicle.mini.vo.RecordMinDateVO;
import com.jk.vehicle.mini.vo.StatisticsVO;
import com.jk.vehicle.core.mapper.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface MileageRecordMapper extends Mapper<MileageRecord> {
    /**
     * 根据日期统计单日的里程
     * @param startDay 统计总里程的开始日期
     * @param endDay 统计总里程的结束日期
     * @param bicycleId 车辆ID
     * @return 里程数
     */
    StatisticsVO queryMileageByDay(@Param("startDay") String startDay, @Param("endDay") String endDay, @Param("bicycleId") Long bicycleId);

    /**
     * 查询里程表中所有的车辆id信息
     * @return 结果
     */
    List<Long> queryAllBicycleIds();

    /**
     * 查询车辆总的里程数
     * @param bicycleId 车辆ID
     * @return 结果
     */
    BigDecimal findTotalMileageOfBicycle(@Param("bicycleId") Long bicycleId);

    /**
     * 查询车辆行驶记录最早时间节点
     * @return 结果
     */
    List<RecordMinDateVO> queryRecordMinDate();
}